推荐几款实用的 GC 日志可视化分析工具!
01、背景介绍
在之前的几篇文章中,我们介绍了类的加载过程、JVM 内存布局、对象的创建过程、运行期的相关优化手段、垃圾对象的回收算法、垃圾收集器以及 GC 日志等相关知识。
通常情况下,运维人员并不会直接在服务器端通过命令方式实时打印当前应用程序的 GC 日志来分析服务的性能,通常的做法是导出当前服务的 GC 日志文件,然后通过其它的可视化工具来分析服务的性能指标。
今天通过这篇文章,我们一起来了解一下 GC 相关的可视化分析工具。
02、日志分析工具
目前,软件市场上对 GC 日志进行可视化分析的工具非常多,在此我们介绍几款业界比较流行的日志分析工具,以便能更加快速的排查 GC 问题。
2.1、GCeasy
GCeasy 是一款在线的 GC 日志分析器,使用起来非常方便,用户可以通过它的 web 网站导入 gc 日志,实时进行内存泄漏检测、GC暂停原因分析、JVM 配置建议优化等功能,而且是可以免费使用的(有部分服务是收费的),网站访问地址如下!
http://gceasy.io
选择中文语言之后,即可看到如下界面。
还是以最开头的代码为例,在运行的时候,加上如下命令即可导出 gc 日志。
-Xloggc:/Users/xxx/Documents/logs/gc.log
如果是 jar 包的启动方式,比如 SpringBoot 工程,可以在启动命令时加上Xloggc
参数即可,例如下面的示例。
java -Xloggc:gc.log -XX:+PrintGCDetails -jar application.jar
如果是 war 包的启动方式,比如放在 tomcat 里面,可以通过修改bin/catalina.sh
文件来开启 gc 日志,例如下面的示例。
JAVA_OPTS='-Xloggc:/tmp/gc.log -XX:+PrintGCDetails'
最后,将导出的 gc 日志,上传到 GCeasy 中,即可实时统计出相关的 gc 信息。
以下导入 gc 日志后,相关的分析截图信息,有兴趣的朋友,可以自行尝试一下。
2.2、GCViewer
GCViewer 也是一款非常强大的 gc 日志可视化分析工具,与 GCeasy 稍有不同,它需要本地运行,而且完全免费。
安装和启动方式如下!
-- 1.下载源码
git clone https://github.com/chewiebug/GCViewer.git
-- 2.用 IDEA打开项目,使用 maven 进行打包
mvn clean pacakge
-- 3.得到一个 可运行的jar包,在 target目录下,启动服务
java -jar gcviewer-1.37-SNAPSHOT.jar
启动服务之后,会弹出一个类似于如下的界面。
点击左上角的按钮,打开本地的 gc 日志文件,就会显示了日志分析的结果。
左侧是图表,右侧是数据统计面板,展示的内容还是比较丰富的,有兴趣的访问它的官网特性说明,地址如下。
https://github.com/chewiebug/GCViewer/wiki
03、小结
本文主要围绕 GC 日志以及相关的可视化分析工具,进行了一次知识内容的整合和总结,如果有描述不对的地方,欢迎大家留言指出,不胜感激。
04、参考
1.https://juejin.cn/post/7029130033268555807
2.https://www.cnblogs.com/xrq730/p/4836700.html
写到最后
最后感谢各位的阅读,原创不易,如果觉得文章写的不错,欢迎大家转发,点击【在看】让更多的人看到,谢谢大家的支持!